package com.zxy.ziems.server.device.service;

import com.zxy.ziems.common.pojo.collector.ChannelDevice;
import com.zxy.ziems.server.device.pojo.dto.ChannelDeviceDTO;
import com.zxy.ziems.server.device.pojo.entity.ChannelDeviceEntity;
import com.zxy.ziems.server.device.pojo.entity.ChannelEntity;
import com.zxy.ziems.server.device.pojo.vo.ChannelDeviceVO;
import com.zxy.ziems.server.device.pojo.vo.DeviceVO;

import java.util.List;

/**
 * 通信信道关联设备
 * @author chdzq
 * @create 2023/3/22
 */
public interface ChannelDeviceService {
    /**
     * 增加
     * @param dto
     */
    void add(ChannelDeviceDTO<?> dto);

    /**
     * 更新
     */
    void update(ChannelDeviceDTO<?> dto);

    /**
     * 根据ID删除
     * @param id id
     */
    void deleteById(String id);


    /**
     * 根据设备Id查询
     * @param deviceId 设备Id
     * @return
     */
    ChannelDeviceEntity getByDeviceId(String deviceId);

    /**
     * 获取展示信息
     * @param id
     * @return
     */
    ChannelDeviceVO<Object> detailById(String id);

    /**
     * 查询列表
     * @param channelId 通讯信道Id
     * @return
     */
    List<ChannelDeviceVO<Object>> listByChannelId(String channelId);


    /**
     *  根据采集器查询列表
     * @param channelId 通信id
     * @return
     */
    List<ChannelDevice> deviceListByChannelId(String channelId);

    /**
     *
     * @param channelDeviceEntity
     */
    void addEntity(ChannelDeviceEntity channelDeviceEntity);
}
